// 封装的是具体的接口请求方法
// 注意：每个方法只负责请求一个url地址
import request from '@/utlis/request' // 引入自定义axios函数

// registerAPI(this.form)
// registerAPI({
//   username: '',
//   password: '',
//   repassword: ''
// })
// 形参obj的值
// obj = { username: '', password: '值', repassword: '' }
// 左侧想要对象解构赋值(语法↓)
// { username: username变量名, password: 变量名, repassword: 变量名 } = { username: '', password: '值', repassword: '' }
// 函数形参的obj就改成对象解构接收传入的数据对象
// { username: username, password: password, repassword: repassword }
// key是传入的对象key匹配, value是变量名, 用于接收外面传入的值
// ES6规定, key和value变量同名的时候, 可以简写(key既为key也是value变量名)

// 导出接口方法，为了在逻辑页面引入后调用
// 注册接口
export const registerAPI = ({ username, password, repassword }) => {
  // 原地是一个promise对象（内部包含原生ajas请求）
  // return这个promise对象到逻辑页面，去那里对promise对象提取结果
  return request({
    url: '/api/reg',
    method: 'POST',
    // axios传参params, data
    // params的对象参数名和值, axios源码会把参数和值, 拼接在url?后面给后台 (query查询字符串)
    // data的对象参数名和值, axios源码会把参数和值, 拼接在请求体里 (body参数)
    data: {
      username,
      password,
      repassword
    }
  })
}

/**
 * 登录接口
 * @param {*} param0 { username: 用户名, password: 密码 }
 * @returns promise对象
 */
export const loginAPI = ({ username, password }) => {
  return request({
    url: '/api/login',
    method: 'POST',
    data: {
      username,
      password
    }
  })
}

// 获取用户信息
export const getuserinfoAPI = () => {
  return request({
    url: '/my/userinfo'
    // 不写就是get方式
    // 传参给后台：params（查询字符串query），data（请求体body），header（请求头）
    // 这里的header写在utlis中的请求拦截器里，所以不需要写了
  })
}

// 获取侧边栏数据
export const getmenuslistAPI = () => {
  return request({
    url: '/my/menus'
  })
}
